added OOP style skeleton + handle commandline parsing