made native implementations