Author: Sandor Lehoczky and Richard Rusczyk