add AbstractCommand