added callable implementation