I may re-invent this wheel at some point :idea: