code enhance, added features