Impulse Based Substructuring: Theory, Improvement, and its Implementation on Real Problems