implement 'list' and refactor system method.