functions to help me build other functions.