separate api structure