property can be functions
initial type handling