step 12 - facelift

skipped step 11 as emails are pretty easy to setup. one thing to note
tho is that python is not naturally asynchronous, you need to start an
separate thread manually