tidy up and propose construct added