annoying opt parsing