broke down all my code, and reworked some stuff. Also added a character