more clear demo structure