add required function