finish simple framework
add cache