a bit more code, still not done