2.0: Rewrite data.js (Incl. event, manipulation, tests)