change EavInterface to EavableInterface, and add some method contracts to both EavableInterface and ParentableInterface