reorganize and add example