removes automatic instantiation and adds the ability to initialize with options object