generalised somewhat