Added some ideas in comments