2nd Refactoring. Adding BaseCommand.