Added register method(), Renamed remove() to unregister(), refactored
invoke() and get()