Created as a final project for WCC class CPS261: Advanced Java Concepts