Implementation of a