sets: start working on generic sets

Signed-off-by: Peter Williams <pwil3058@bigpond.net.au>