separate state from dynamic properties