modified Shot's update method and added interface