rewrote to be more accurate