Version 2 rewrite completed February 2025