WIP more faffing with metaprogramming