saving current progress. May overhaul the whole thing