refactored some code and created nickname updating system. haven't tested so bear with it