metaprogramming
classes and object
Magic Method, Exceptions, and code reading