query once in property getters, wait only if neccessary in property setters