add timer
add json support