Mostly java material from NSCC's Introduction to OOP class.