initial code ver 1