implement CS0304