first version that compiles