Adapted protocols to be classes