New API structure