massive simplification and refactoring for 2.0 version, including the addition of a recording proxy