add blog: promise
add demos