temp commit, will be merged with a new branch later after the inheritance model is fixed.