beginnings of a better command parser