added the ability to add new commands in a more modular and flexible way