add support for dynamic properties [ci skip]