add algorithm fill