broken as shit. ugly code. Working through some ideas. Dont show to mom. (: