Commands are now defined by config, thus keeping things in one place and also making them user and project extensible. Reduced inter-module dependencies to prevent cyclic.