All classes reimplemented using new concepts