I've kinda given up on this as I can't seem to make construct behave how I think it should.. The ifthenelse isn't bidirectional, and not sure how to fix it..