Made critical improvements, too many to explain