Changes singleton to prepare to support cache timeout, adds test for no cache
Changes singleton to support cache value as a number (timeout in seconds)