adding builder pattern to User