add get_schema
restructure the backend api little