Abstracting user to allow other projects to use it