height and width are now dynamic