ethreact (ethutil refactor)