A framework for building heavily versioned applications