I'll have a look at implementing this