unify observable collection behavior