updated more code to use base collection api where possible