added conditional items and logical assertion controllers, delegated elements class changes to themselves rather than the interaction object