added collect and join