i spent too much time on this