Assignment # 3 by Mark Chenchin