see my comments in the other PR about this pattern of double-exporting in the return statement which means you have to go look here to find what the function is called, and then go find what it's actually mapped to. Let's lose this and use an 'exports' object instead (or similar). 

apart from that though this looks way better, going to merge but can we get rid of the double-returns as part of the other PR please?