single responsibility pattern, moved post promises to new post controller