rewrite of the user class