add full session support to functions