coverage is optional, close #2
merge optional coverage