with support for custom properties to the session