Implementation, tests, demo