Finished porting, now gonna add my own additions