Changed the GameObject delegate to use Java 8 Functional interfaces 
as opposed to a "Delegate" class