genericized into simple door types