added a #parse! method to bot to parse outside of the DSL