support reload()
Add basic tests