be more explicit with session arg checking and DRY