use traverse function to find binding methods
throw error when index out of range
add test spec
empty the array when remove called with no arguments
event doc