having a separate object for this is suspect... I think elementControllers could probably be used