still refactoring user api