Close to finished, need to check code