accept options
update usage and tests