demo and tests