When should I use a framework?