implement AbstractOptions
update comments, how to use