updated methods to meet pre/post conds