split api into modules to be consistent with backend structure