fix after inspection, add Writer interface to let different output format be available
udpate