user class design