model virtual getters instead of map