implement a new session factory