option 2 is also impractical for most part. doing a rewrite is big thing already, changing implementation paradigm would make "catching up" impossible.
Only practical option is to do low level rewrite (otpion 1) and then rewrite module by module into better approaches.
Only practical option is to do low level rewrite (otpion 1) and then rewrite module by module into better approaches.