new include abstraction, used to abstract commands, which will allow extended command abstraction