add docblocks
fix missing property
use Common\Collection class instead of SplObjectStorage