Some new shared functions and more work on experimental version