initial full version