This is a part of the resolution if issue 7 Because the issue 7 won't be solved soon, I merge only this part