functional demo version