more complete demo