refactor
add sample