add prototype pattern demo