added option to modify the data before saving to cache

pending: bug that caused inconsistency if multiple objects returned!
temporary workaround: results.count >= 1 instead of == 1