implement basename
implement cleanname