this was hard