rebound working - could use a refactor but nah for now.