rewrite some of class

see your self