use ParseOption to simplify spec