refactor danmaku factory