added Demo, added complex type
solution to Step2