added coverage testing, results are not good :(