Refactor name and added based function definitions