I believe this is now acceptably complete