split preference & membership tests into 2