refactor. options. etc