fixed up funcs-see todos