Move some AbstractCommand functionality to the core