Dry up code base significantly by abstracting usual commands into super class, add invoices commands