slightly cleaner error handling, faster retrieval