first functioning version