Empowering Model Driven Architecture in Java