lots of user refinements