add error handler
add demo file