making door component generic