'low level API' is now optional