add paramed constructor, and inherent class's constructor need modify