changed names and functions