improvement: separate list rendering from processing

Signed-off-by: Dominik Richter <dominik.richter@gmail.com>
improvement: separate selector from item rendering

Signed-off-by: Dominik Richter <dominik.richter@gmail.com>