working on implementation of more general select(property) interface