opt parse needs more work