Let's see if we can work out some ends here
It might be a good idea to have the object properties when initialized
Time to refactor
Takes care of some lines :-)
Took awhile.. But this seems to do as expected