Author: terence penelhum and roger a. shiner