Rework high level API