move lots of code to JSON::CollectionJSON and provide the first DSL methods!