looks more like hn, refactor