Updated README
Updated error handling to be more idiomatic and add recursive rule support