a bit more complete