Version 3.0; see README for details