add breakpoints and various improvements