adds docs, rename some classes and methods, adds command skeleton and visiting logic