Moved commands to their own package and split into separate files.