Separate api from impl modules