complete code v.1