Java Advanced Assignment Project