what is this needed for ? why need to create one on every invocation ?