Added specs, implemented snapshots