Cleaned up inheritance structure and methods