common data structure implementations