add option handling and usage menu