fill logic