moved monotonic_counter inside the implementation, and changes the base counter to the memory address of the counter, to better handle multiple monotonic_counters from different modules in the system
no reason to manually implement a linked list...