first - quite comprehensive - look at scala