have `of` take an optional second arg