add tests for collection methods
add scalacheck
infrastructure for macros