annotated the functions