messy but workable