topic page: use q promise and reconstruct