move includes inside guards and use const instead of macro
forward declare server and session for now