start to generalise lambda
abstract field lookups
further generalise lookups