added implementation for Shoemaker