some functions written in racket