use custom options class to wrap hash