more detailed comments
fixed constraint logic
added isEmpty() and EMPTY constant
added Hash helper method container
created EventObject parent class
updated to match EventObject pattern
fleshed out event listeners
updated listeners, added -0 to -4 verbosity args
placeholder lel