+ added carpet generation