added 3 interfaces