How to design for loosely-coupled, highly-cohesive components within a Rails app | Hacker News Reader