expanded functions