supported inheritence
added checks