removed useTimeout and added setTimeout as default expiration method, added expiration event