Fine, bullied into it ;-)
Not entirely happy yet; will refactor a little more in the future