this was difficult