adding more terrible copy pasted functions