added dynamic width and height