factory classes moved to api