Programming in Java: Coursework 2