refactoring
function added
clean-up