Yep, happy with this. I think i'll leave this for a refactor later though...