initial workin version