protected void execute(String gameBehavior, AlertObject in) {
        //System.out.println(gameBehavior);
        for (WeakReference x : myWeakReferences) {
            try {
                Class[] paramClasses = gameBehaviors.get(gameBehavior).getParameterTypes();
                if (paramClasses.length == 0) {
                     gameBehaviors.get(gameBehavior).invoke(x.get()); //An argument is not required for game behaviors
                } else if(paramClasses[0].isInstance(in)) {
                     gameBehaviors.get(gameBehavior).invoke(x.get(), paramClasses[0].cast(in));
                }
            } catch (IllegalArgumentException e) {
            	System.out.println("Illegal Argument Exception on game method call: " + gameBehavior);
            } catch (IllegalAccessException e) {
            	System.out.println("Illegal Access Exception on game method call: " + gameBehavior);
            } catch (InvocationTargetException e) {
            	System.out.println("Inovaction Target Exception on game method call: " + gameBehavior);
            } catch (NullPointerException e) {
            	System.out.println("Null Pointer Exception on game method call: " + gameBehavior);
            }
        }
    }