I do not think this class will be inherited by anyone, so pls remove "virtual"