updating with changes from Shawn