shifts parsing into command classes, and adds the ability for users to add custom log statements