generalisable
not defined yet