forked from: Patern Generator

