refactored handling of observable collection