updated demo and source