added general reflection matrix