Feature/refactor icmp