remove constructor usage, only support decorator