make sure inhereted calls super first, and attributes are defined