[#360] refactoring
[#360] use rails caching