some changes in class structure