rewrite unit tests improved
rewrite class up