Add BaseAbstractCommand

Work towards moving abstract command to the core