refactor exp date logic into internal methods
organize internal methods