When checking if operator& has been overloaded you should check if it is a free function as well. Let me know if I've missed anything