make callbacks for non-getters optional