@Ian yeah having something as a seperate component might be a good idea, the issue is you can't suite everyone's needs and often it is dependant on access control / users etc too so once you start implementing something you force others down the same path