Tidying up implementation for different extensions