updated api to use common collection interfaces, concurrent maps where possible