Ok this is pretty tough