SMPL is an open-source simulation language used at universities of many countries both for research activities and in discrete simulation teaching. Despite of that, until now we have not found in the literature significant improvements to its original capabilities. In a previous work we proposed the addition of several instrumentation tools based on those proposed in the CSIM language. In this work we have improved the modeling capabilities of SMPL by adding several features. First of all, we have added facilities with infinite servers to model delays, and most important, customer classes can be defined in the model: the inclusion of classes can be used in order to make explicit the behavior of customers in the model and also to get statistics for each class in reports. Second, we have included explicit queues, storages, and an unqueue function, for both facilities and explicit queues, initially proposed by the creator of SMPL as a natural extension. Finally; the random number generator has been updated to that proposed by L'Ecuyer in order to avoid hardware dependency. In this paper, we present a brief description of the new features added to the SMPL simulation language, the way they can be used in the model code, and some aspects about their internal implementation.