uncommented required function