making commands more OO