base functionality, simple control API