update libtrello to be asynchronous, add loading spinner