Author: Richard Rusczyk and Sandor Lehoczky