added generic counter
generic counter produces same results as product counter
minor refactoring
generic counter produces same result as demand counter, BUT if smoothing is removed
added smoothing as parameter for generic counter and added feature extraction based on the generic counter