We need to be able to merge into upstream go-ethereum, so we should refactor and polish already existing code. Look at unit test and go fmt