new recursive template and a little bit of style