first version, many things to do