Rename functions; Add lots of null object; Add comments