From my first tests it looks good. I may test it further one of the days, since I like the idea.
I would have preferred to not have the e-mail calculated into the private keys generation, but that's me (I have too many e-mail addresses).
All in all, well done!