Further enforce dstyle, add some properties, tried implementing events but failed though