backwards compatibility is a mess