finish official API and it’s unit tests