Essential Modelling in Java