restructure, start on other intrinsics