Final working.
FINAL WORKING! NO CHANGES!
Minor changes for testing and fixes.