modernization: smart ptr everywhere!
modernization: removing some mem leak due to the argument parsing library I wasn't cleaning up