A more powerful version