Added library
Added loading screen independent from server delay, added tests, and did some refactoring