widget refactorized
add example app