updated api, separated projection