Reorganize API (wip)