Pulling this into a separate library.