Incorporated most recent upstream with my particle additions