Added expired exception and ability to not throw exceptions