implement the firewall