add getter and constructor
achieve promotion with non Dao