user improvements, refactoring