replace _ with self