adding some ideas in comments