optimize extend