general api improvements