Move Library into it's own file