added recover and profile pages and changed logic slightly in user_data()