extract UserCache class
add todo to refactor something
extract technique_cache
move cachers into their own folder
extract duplicated code into super class
reduce duplication in tests