list of useful functions and sub-routines