map container & some refractoring