added require core_ext