better api layout