If you could shorten this up a bit to get tailor to pass, this is a bit complicated.