WIP: implementation and changes to api draft.