refactor abstract command to abstract pimple command