built out user specs, all pass