as it turns out, Arduino doesn't seem to have a garbage collector, like other high level programming languages,
so I added a destructor.

also upgraded the overall code accordingly. based