I wanted to keep the methods on them so I reckoned this to be the least ugly way of achieving that -- bare functions less nice in this case I think as there's a degree of polymorphism there with the different variety of sections