Very messy but tags are roughly working.