new way of dealing with breakpoints, added different type functions