EmptyObject is a super cleaned out class inheritance for metaprogramming and DSL making