changed inline xRunnableEvent class to anonymous class by getRunnable() function
to allow for function overriding if needed
added null pointer exceptions to keeper class
just in case, rather than the possibility of a silent fail