changed to a diff. breakout implementation