changes constructor use options instead of named properties