membership implementation