Replaced argument parser with state machine :(