alot of refactoring of user apis