using essentially up/down counters