instantiate on require