making it more Obj-Orien
completed program