use prototype chain
option && fix equal and member