fixed some things, refactored EVERYTHING