added require method