function
main function
update docs