Add user facade and refactoring