generalized demo system