remove unused member variables
polymorphism, and bug fix
everything finished up