enhanced API to allow fully separated front-end