Major reworking --testing