updated with extra credit