Implementation and tests
Description