4.3 DONE. will add comments later.