add a sleep() function