change demo
add flexibiliy