\begin{abstract}

Module versioning as currently implemented in existing module systems for 
Java-like languages depend on flat constraint systems that make it difficult
to maintain consistent common dependencies among modules. Current module 
systems now in use also lack the
capability to deliver patches without complete replacement or
a destructive update. This paper presents a novel module 
system which addresses these issues. The module system itself is derived from 
features present in object-oriented languages and several proposed module systems. 
An implementation of the module system on Java as well as a small case study is 
provided. As a further evaluation, a translation from OSGi bundles to modules in the proposed system is 
implemented to demonstrate that the module system can express the constraints 
specified in OSGi bundles.

\end{abstract}