aHongmin & Jinwen add constructor tests and constructor injecttion