added main components for the assignment.