more general improvements