start reworking core api