all work like charm full comments and stuff
need unit testing for class
try block