collection is working :)
more test and some refactor