support 2 types of initializer, one is with username&password, the other one is a remote url that saves a config json, which can be changed dynamically
a new set of class that deals with storage
add helper to test event types