Protocol abstract code done.