very distracted writing but still... it's done