comments needed in all public functions for this file