move all generic functionality to BMJ XML