this is hard to undersand