code and test refactor
add scalacheck tests
add scalacheck tests
more property tests
refactor scale and rotate