What's the Difference Between a Framework and Library?