adding the amsthm package...
... to make sure it is loaded before cleveref
Otherwise, if the user includes amsthm in his preamble, it will be loaded after cleveref so that cleveref will misinterprete all "newtheorems" (like lemmas, definitions...) as theorems.