backward compatibility achieved through some atrocious hacks