separate property concerns to protocol