added a whole buncha stuff