Code refactor, add some test, css and option for lists.