added first version of the new model that includes providers and destructors