consequence of ec7f6a6cf367346b60148f76862c92acd00c3d9f
updated TODO
refactoring