make a module out of session abstraction