clean up example a bit; return typed object from linq query; use dynamic access as well as dict access