initial cut of a version aware dependency resolver