add some new attributes and constructor