tweaked inheritance structure