return type set correctly for __set