some refactor
arround for