Added the patterns and improved the "prep_*" syntactic sugar