Re-made some changes, still passing all but two tests