The main concern I still have with this that in cases where the sub classes don't have fields in common, this this just very unpredictable behavior