Rework the Api