generalisation improvements