markup is constructed using js