add a more convenient property setter to val