add sample implementation