Introduce member and meta split

Signed-off-by: Gawain Lynch <gawain.lynch@gmail.com>
Base class for membership functions

Signed-off-by: Gawain Lynch <gawain.lynch@gmail.com>