Messy but working