add tests and improve the show output