Created abstract classes for hooks on classes. Also implemented defaults