Typedefd out types to accomodate different precisions