some refacts