Some classes for the implementation