Jarv/user refactor