added a sample implementation