more work on badges and awarding them via asynchronous tasks