Lots of changes with patterns...

implementing as much as possible, as quickly as possible