UNSAFE Change CommandParser to CommandObject

- port all CommandParser methods to CommandObject
- revert back Keyword to the original state