finally a version that compiles :D