implement cover operation