It'd help if I wrote the patterns properly
Initial code commit