First try, probably won't support interfaces in inherited objects