refactor crane.go