A Layered Architecture for Uniform Version Management