rename :options to :optional
implement usage