Implement Sessions

WIP DO NOT MERGE