expire time: added; refactored