card view (issue #20)