changed generators to accept percentage width and height