first offline tests
clarification
fix test side effects
implement toDictionary
call cache on offline