implement class inherit
implement closure