utils written in scheme