add membership functionality