Implement new session types and update another
This MR implements the changes requested in #241 (closed).
It supersedes and contains !19 (merged) and !20 (merged).
This MR implements the changes requested in #241 (closed).
It supersedes and contains !19 (merged) and !20 (merged).
This will create a new commit in order to revert the existing changes.