a) some refactors
b) add member communicates with list member