move explosion code to own class