- use Timer to schedule GC runs, not direct threads
- assert some values are not null
- loggign adjustments
- extract AbstractSession
- initial support for Redis as session backend