Made everything generic