Final project, done in Java