Made some code more reusable
Simpler firing mechanism
Removed unused class
Even more javadoc