add application runner
format and refactor code
add source file