misc improvements

see commit comments for details
Generally I only use `dynamic` with generics ( `Map<String, dynamic>` ) because this is the only case where you need to write `dynamic`.