nearly doing the interresting part