Started adding generic functions