user parameter moved to constructor