prototype pattern commit