patterns overhaul WIP