Added interface and receiving implementation