updated all of this again