added add specific functionality to make main functionality more flexible.