this is a mess but I think it's coming together.