final changes. PLEASE TEST