Add support for multiple levels of inheritance. Fix typo. Add test to confirm that the ability to override doesnt mean you must override