Over engineered Java game of life example (don't write code like this :p)