documenting the functions implemented