some more backend refactors