v2.0, see readme for details