almost compiling
working code