patterns engine