added lifecycle (transient || singleton) support for factories. removed the optional inject parameters (everything gets injected)