working fill implementation