added rough unique constraint for manipulatable elements/collections
refactor input base classes into single and multi-timer based, single timer works, multi-timer has bugs