Made major progress, just have to finish