rework class User