class WindowedKStreamImpl extends AbstractStream<K> implements WindowedKStream<K, V> {

    @Override
    public KTable<Windowed<K>, Long> count() {
        return aggregate(
                new Initializer<Long>() {
                    @Override
                    public Long apply() {
                        return 0L;
                    }
                }, new Aggregator<K, V, Long>() {
                    @Override
                    public Long apply(K aggKey, V value, Long aggregate) {
                        return aggregate + 1;
                    }
                },
                Serdes.Long());
    }

      WindowedKStreamImpl(final Windows<W> windows,
                        final InternalStreamsBuilder builder,
                        final Set<String> sourceNodes,
                        final String name,
                        final Serde<K> keySerde,
                        final Serde<V> valSerde,
                        final boolean repartitionRequired);

}