completed user boilerplate