These all look very similar, could this part be made more generic too?