all sorts of tweaking to make stuff more dynamic & less hardcodey