implemented custom breaks
all tests passing with new interface