this was really hard to explain