Created for IN9550 assignment.