refactor transparent extentions