#5 modify class structure and test