refactor session types from macros into enum