Wow this is messy