Implementation of the spec REV2