track slot ranges
move update_slot_range from the view to the collection
better find_available_slot method