added require as argument