session module with spec