add register framework
add flag parser