refactor all models, to accept a complex context-Object instead of just the user