Assignment # 2 by Mark Chenchin