getting rid of downcasts
Condition_{Float, Side} is replaced by Condition
constant side observables added
downcasts from IFunction[Side] to IObservable[Side] are also checked