Started work on the implemenetation using a linked list so that I could granularly lock nodes within the list rather than the entire list for thread safety.