simplify the constructor arguments
dont need the destructor
split this program into logical components