Updated with Josh's suggestions