some refractoring
some refractoring