class MessageAggregator extends AbstractActorWithTimers {

    public static <T> Props props(final ActorRef initialReceiver, final Class<T> messageClass,
            final int expectedMessages, final Duration timeout) {

        return Props.create(MessageAggregator.class, initialReceiver, messageClass, expectedMessages, timeout);
    }

    @SuppressWarnings("unused") private  MessageAggregator(
            final ActorRef initialReceiver,
            final Class<T> messageClass,
            final int expectedMessages,
            final Duration timeout);

}