handle all options correctly