Tidied Packages and added Listener

Created separate packages for executors and listeners, and added a
listener to prevent guard from dropping items.