restructured user class.