whew this was hard