// Path: graceland-example/src/main/java/io/graceland/example/counting/Counter.java
// public class Counter {
//     private final long count;
//     private final DateTime timestamp;
// 
//     public Counter(long count, DateTime timestamp) {
//         this.count = count;
//         this.timestamp = timestamp;
//     }
// 
//     public long getCount() {
//         return count;
//     }
// 
//     public DateTime getTimestamp() {
//         return timestamp;
//     }
// }
// 
// Path: graceland-example/src/main/java/io/graceland/example/counting/CountingMachine.java
// public interface CountingMachine {
// 
//     void increment();
// 
//     void resetCount();
// 
//     Counter getCurrentCount();
// }


import java.util.concurrent.atomic.AtomicLong;
import org.joda.time.DateTime;
import io.graceland.example.counting.Counter;
import io.graceland.example.counting.CountingMachine;
package io.graceland.example.simple;




public class SimpleCountingMachine implements CountingMachine {

    private final AtomicLong count = new AtomicLong();

    @Override
    public void increment() {
        count.incrementAndGet();
    }

    @Override
    public void resetCount() {
        count.set(0);
    }

    @Override
// Path: graceland-example/src/main/java/io/graceland/example/counting/Counter.java
// public class Counter {
//     private final long count;
//     private final DateTime timestamp;
// 
//     public Counter(long count, DateTime timestamp) {
//         this.count = count;
//         this.timestamp = timestamp;
//     }
// 
//     public long getCount() {
//         return count;
//     }
// 
//     public DateTime getTimestamp() {
//         return timestamp;
//     }
// }
// 
// Path: graceland-example/src/main/java/io/graceland/example/counting/CountingMachine.java
// public interface CountingMachine {
// 
//     void increment();
// 
//     void resetCount();
// 
//     Counter getCurrentCount();
// }


// Path: graceland-example/src/main/java/io/graceland/example/simple/SimpleCountingMachine.java
import java.util.concurrent.atomic.AtomicLong;
import org.joda.time.DateTime;
import io.graceland.example.counting.Counter;
import io.graceland.example.counting.CountingMachine;

package io.graceland.example.simple;




public class SimpleCountingMachine implements CountingMachine {

    private final AtomicLong count = new AtomicLong();

    @Override
    public void increment() {
        count.incrementAndGet();
    }

    @Override
    public void resetCount() {
        count.set(0);
    }

    @Override
    public Counter getCurrentCount() {