this is where it gets complicated