added private fns