diff --git a/cmd/tools/vfmt.v b/cmd/tools/vfmt.v
index c7883db357..1403e0294c 100644
--- a/cmd/tools/vfmt.v
+++ b/cmd/tools/vfmt.v
@@ -77,22 +77,9 @@ fn main() {
 		eprintln('vfmt env_vflags_and_os_args: ' + args.str())
 		eprintln('vfmt possible_files: ' + possible_files.str())
 	}
-	mut files := []string{}
-	for file in possible_files {
-		if os.is_dir(file) {
-			files << os.walk_ext(file, '.v')
-			files << os.walk_ext(file, '.vsh')
-			continue
-		}
-		if !file.ends_with('.v') && !file.ends_with('.vv') && !file.ends_with('.vsh') {
-			verror('v fmt can only be used on .v files.\nOffending file: "$file"')
-			continue
-		}
-		if !os.exists(file) {
-			verror('"$file" does not exist')
-			continue
-		}
-		files << file
+	files := util.find_all_v_files(possible_files) or {
+		verror(err.msg)
+		return
 	}
 	if is_atty(0) == 0 && files.len == 0 {
 		foptions.format_pipe()
diff --git a/cmd/tools/vtest-cleancode.v b/cmd/tools/vtest-cleancode.v
index 90194192f1..19982ac24d 100644
--- a/cmd/tools/vtest-cleancode.v
+++ b/cmd/tools/vtest-cleancode.v
@@ -16,7 +16,11 @@ const (
 		'examples/tetris',
 		'examples/term.ui',
 	]
-	verify_known_failing_exceptions = []string{}
+	verify_known_failing_exceptions = [
+		'vlib/gg/m4/graphic.v' /* has hand crafted meaningful formatting of matrices */,
+		'vlib/gg/m4/m4_test.v' /* has hand crafted meaningful formatting of matrices */,
+		'vlib/gg/m4/matrix.v' /* has hand crafted meaningful formatting of matrices */,
+	]
 	vfmt_verify_list                = [
 		'cmd/v/v.v',
 		'cmd/tools/vdoc/',
@@ -30,8 +34,13 @@ const (
 		'vlib/builtin/map.v',
 		'vlib/builtin/int.v',
 		'vlib/builtin/option.v',
+		'vlib/cli/',
+		'vlib/dl/',
+		'vlib/flag/',
+		'vlib/gg/',
 		'vlib/math/bits/bits.v',
 		'vlib/orm/',
+		'vlib/runtime/',
 		'vlib/term/colors.v',
 		'vlib/term/term.v',
 		'vlib/v/ast/',
@@ -88,7 +97,8 @@ fn main() {
 
 fn tsession(vargs string, tool_source string, tool_cmd string, tool_args string, flist []string, slist []string) testing.TestSession {
 	os.chdir(vroot)
-	testing.eheader('Run `$tool_cmd` over most .v files')
+	title_message := 'running $tool_cmd over most .v files'
+	testing.eheader(title_message)
 	mut test_session := testing.new_test_session('$vargs $tool_args')
 	test_session.files << flist
 	test_session.skip_files << slist
@@ -97,14 +107,16 @@ fn tsession(vargs string, tool_source string, tool_cmd string, tool_args string,
 	// in the VTMP from the test session too, so they will be cleaned up
 	// at the end
 	test_session.test()
-	eprintln(test_session.benchmark.total_message('running `$tool_cmd` over most .v files'))
+	eprintln(test_session.benchmark.total_message(title_message))
 	return test_session
 }
 
 fn v_test_vetting(vargs string) {
 	vet_session := tsession(vargs, 'vvet', 'v vet', 'vet', vet_folders, vet_known_failing_exceptions)
 	fmt_cmd, fmt_args := if is_fix { 'v fmt -w', 'fmt -w' } else { 'v fmt -verify', 'fmt -verify' }
-	verify_session := tsession(vargs, 'vfmt.v', fmt_cmd, fmt_args, vfmt_verify_list, verify_known_failing_exceptions)
+	expanded_vfmt_list := util.find_all_v_files(vfmt_verify_list) or { return }
+	verify_session := tsession(vargs, 'vfmt.v', fmt_cmd, fmt_args, expanded_vfmt_list,
+		verify_known_failing_exceptions)
 	//
 	if vet_session.benchmark.nfail > 0 || verify_session.benchmark.nfail > 0 {
 		eprintln('\n')
diff --git a/cmd/tools/vvet/vvet.v b/cmd/tools/vvet/vvet.v
index 303c62ca0c..468bf3b912 100644
--- a/cmd/tools/vvet/vvet.v
+++ b/cmd/tools/vvet/vvet.v
@@ -9,6 +9,7 @@ import v.pref
 import v.parser
 import v.table
 import v.token
+import term
 
 struct Vet {
 	opt Options
@@ -19,6 +20,7 @@ mut:
 
 struct Options {
 	is_verbose bool
+	use_color  bool
 }
 
 fn (vet &Vet) vprintln(s string) {
@@ -38,9 +40,23 @@ const is_verbose = '-verbose' in vet_options || '-v' in vet_options
 
 const show_warnings = '-hide-warnings' !in vet_options
 
+const use_color = should_use_color()
+
+fn should_use_color() bool {
+	mut color := term.can_show_color_on_stderr()
+	if '-nocolor' in vet_options {
+		color = false
+	}
+	if '-color' in vet_options {
+		color = true
+	}
+	return color
+}
+
 fn main() {
-	opt := Options{
+	mut opt := Options{
 		is_verbose: is_verbose
+		use_color: use_color
 	}
 	mut vet := Vet{
 		opt: opt
@@ -97,11 +113,11 @@ fn main() {
 	errors_vfmt := vet.errors.filter(it.kind == .error && it.fix == .vfmt)
 	if show_warnings {
 		for err in warnings {
-			eprintln('$err.file_path:$err.pos.line_nr: warning: $err.message')
+			eprintln(e2string(err))
 		}
 	}
 	for err in errors {
-		eprintln('$err.file_path:$err.pos.line_nr: error: $err.message')
+		eprintln(e2string(err))
 	}
 	if errors_vfmt.len > 0 {
 		eprintln('NB: You can run `v fmt -w file.v` to fix these automatically')
@@ -111,6 +127,20 @@ fn main() {
 	}
 }
 
+fn e2string(err vet.Error) string {
+	mut kind := '$err.kind:'
+	mut location := '$err.file_path:$err.pos.line_nr:'
+	if use_color {
+		kind = match err.kind {
+			.warning { term.magenta(kind) }
+			.error { term.red(kind) }
+		}
+		kind = term.bold(kind)
+		location = term.bold(location)
+	}
+	return '$location $kind $err.message'
+}
+
 fn (mut v Vet) error(msg string, line int, fix vet.FixKind) {
 	pos := token.Position{
 		line_nr: line + 1
diff --git a/vlib/gg/gg_darwin.c.v b/vlib/gg/gg_darwin.c.v
index fe99b5d71d..c44ccf87f6 100644
--- a/vlib/gg/gg_darwin.c.v
+++ b/vlib/gg/gg_darwin.c.v
@@ -1,6 +1,7 @@
 module gg
 
 #include "@VROOT/vlib/gg/gg_darwin.m"
+
 fn C.gg_get_screen_size() Size
 
 fn C.darwin_draw_string(x int, y int, s string, cfg voidptr)
diff --git a/vlib/gg/m4/vector.v b/vlib/gg/m4/vector.v
index 1025e79120..52e4c7808e 100644
--- a/vlib/gg/m4/vector.v
+++ b/vlib/gg/m4/vector.v
@@ -28,7 +28,9 @@ pub fn (x Vec4) str() string {
 
 // create a Vec4 function passing x,y,z as parameteres. w is set to 1
 pub fn vec3(x f32, y f32, z f32) Vec4 {
-	return m4.Vec4{e:[x, y, z, 1]!}
+	return Vec4{
+		e: [x, y, z, 1]!
+	}
 }
 
 // Remove all the raw zeros
@@ -47,12 +49,14 @@ pub fn (a Vec4) clean() Vec4 {
 
 // Set all elements to value
 pub fn (mut x Vec4) copy(value f32) {
-	x.e = [ value, value, value, value,	]!
+	x.e = [value, value, value, value]!
 }
 
 // Scale the vector using a scalar
 pub fn (x Vec4) mul_scalar(value f32) Vec4 {
-	return Vec4{ e: [ x.e[0] * value, x.e[1] * value,  x.e[2] * value, x.e[3] * value, ]! }
+	return Vec4{
+		e: [x.e[0] * value, x.e[1] * value, x.e[2] * value, x.e[3] * value]!
+	}
 }
 
 // Reciprocal of the vector
diff --git a/vlib/gg/text_rendering.v b/vlib/gg/text_rendering.v
index fe58221d1f..130e7dd39d 100644
--- a/vlib/gg/text_rendering.v
+++ b/vlib/gg/text_rendering.v
@@ -261,7 +261,9 @@ pub fn system_font_path() string {
 	mut fonts := ['Ubuntu-R.ttf', 'Arial.ttf', 'LiberationSans-Regular.ttf', 'NotoSans-Regular.ttf',
 		'FreeSans.ttf', 'DejaVuSans.ttf']
 	$if macos {
-		fonts = ['/System/Library/Fonts/SFNS.ttf', '/System/Library/Fonts/SFNSText.ttf', '/Library/Fonts/Arial.ttf']
+		fonts = ['/System/Library/Fonts/SFNS.ttf', '/System/Library/Fonts/SFNSText.ttf',
+			'/Library/Fonts/Arial.ttf',
+		]
 		for font in fonts {
 			if os.is_file(font) {
 				return font
@@ -269,8 +271,10 @@ pub fn system_font_path() string {
 		}
 	}
 	$if android {
-		xml_files := ['/system/etc/system_fonts.xml', '/system/etc/fonts.xml', '/etc/system_fonts.xml',
-			'/etc/fonts.xml', '/data/fonts/fonts.xml', '/etc/fallback_fonts.xml']
+		xml_files := ['/system/etc/system_fonts.xml', '/system/etc/fonts.xml',
+			'/etc/system_fonts.xml', '/etc/fonts.xml', '/data/fonts/fonts.xml',
+			'/etc/fallback_fonts.xml',
+		]
 		font_locations := ['/system/fonts', '/data/fonts']
 		for xml_file in xml_files {
 			if os.is_file(xml_file) && os.is_readable(xml_file) {
diff --git a/vlib/io/reader.v b/vlib/io/reader.v
index 588dd5a550..3b7a25ea9f 100644
--- a/vlib/io/reader.v
+++ b/vlib/io/reader.v
@@ -25,7 +25,7 @@ const (
 // ReadAllConfig allows options to be passed for the behaviour
 // of read_all
 pub struct ReadAllConfig {
-	reader Reader
+	reader                Reader
 	read_to_end_of_stream bool
 }
 
@@ -35,18 +35,16 @@ pub fn read_all(config ReadAllConfig) ?[]byte {
 	r := config.reader
 	read_till_eof := config.read_to_end_of_stream
 
-	mut b := []byte{len: read_all_len}
+	mut b := []byte{len: io.read_all_len}
 	mut read := 0
 	for {
-		new_read := r.read(mut b[read..]) or {
-			break
-		}
+		new_read := r.read(mut b[read..]) or { break }
 		read += new_read
 		if !read_till_eof && read == 0 {
 			break
 		}
 		if b.len == read {
-			unsafe { b.grow_len(read_all_grow_len) }
+			unsafe { b.grow_len(io.read_all_grow_len) }
 		}
 	}
 	return b[..read]
@@ -55,18 +53,16 @@ pub fn read_all(config ReadAllConfig) ?[]byte {
 // read_any reads any available bytes from a reader
 // (until the reader returns a read of 0 length)
 pub fn read_any(r Reader) ?[]byte {
-	mut b := []byte{len: read_all_len}
+	mut b := []byte{len: io.read_all_len}
 	mut read := 0
 	for {
-		new_read := r.read(mut b[read..]) or {
-			break
-		}
+		new_read := r.read(mut b[read..]) or { break }
 		read += new_read
 		if new_read == 0 {
 			break
 		}
 		if b.len == read {
-			unsafe { b.grow_len(read_all_grow_len) }
+			unsafe { b.grow_len(io.read_all_grow_len) }
 		}
 	}
 	return b[..read]
diff --git a/vlib/io/reader_test.v b/vlib/io/reader_test.v
index 9702950402..8622c79bac 100644
--- a/vlib/io/reader_test.v
+++ b/vlib/io/reader_test.v
@@ -4,7 +4,7 @@ struct Buf {
 pub:
 	bytes []byte
 mut:
-	i     int
+	i int
 }
 
 fn (mut b Buf) read(mut buf []byte) ?int {
@@ -39,7 +39,7 @@ fn test_read_all_huge() {
 }
 
 struct StringReader {
-	text  string
+	text string
 mut:
 	place int
 }
@@ -58,17 +58,15 @@ const (
 )
 
 fn test_stringreader() {
-	text := '12345\n'.repeat(newline_count)
+	text := '12345\n'.repeat(io.newline_count)
 	mut s := StringReader{
 		text: text
 	}
-	mut r := new_buffered_reader({
-		reader: make_reader(s)
-	})
+	mut r := new_buffered_reader(reader: make_reader(s))
 	for i := 0; true; i++ {
 		if _ := r.read_line() {
 		} else {
-			assert i == newline_count
+			assert i == io.newline_count
 			break
 		}
 	}
@@ -85,24 +83,22 @@ fn test_stringreader() {
 }
 
 fn test_stringreader2() {
-	text := '12345\r\n'.repeat(newline_count)
+	text := '12345\r\n'.repeat(io.newline_count)
 	mut s := StringReader{
 		text: text
 	}
-	mut r := new_buffered_reader({
-		reader: make_reader(s)
-	})
+	mut r := new_buffered_reader(reader: make_reader(s))
 	for i := 0; true; i++ {
 		if _ := r.read_line() {
 		} else {
-			assert i == newline_count
+			assert i == io.newline_count
 			break
 		}
 	}
 	if _ := r.read_line() {
 		assert false
 	}
-	leftover := read_all(reader: io.make_reader(r)) or {
+	leftover := read_all(reader: make_reader(r)) or {
 		assert false
 		panic('bad')
 	}
@@ -116,9 +112,7 @@ fn test_leftover() {
 	mut s := StringReader{
 		text: text
 	}
-	mut r := new_buffered_reader({
-		reader: make_reader(s)
-	})
+	mut r := new_buffered_reader(reader: make_reader(s))
 	_ := r.read_line() or {
 		assert false
 		panic('bad')
diff --git a/vlib/runtime/runtime.c.v b/vlib/runtime/runtime.c.v
index 363071fdd9..9b894087e3 100644
--- a/vlib/runtime/runtime.c.v
+++ b/vlib/runtime/runtime.c.v
@@ -6,8 +6,10 @@ module runtime
 
 //$if linux {
 fn C.sysconf(name int) i64
+
 //}
 
 //$if windows {
 fn C.GetCurrentProcessorNumber() u32
+
 //}
diff --git a/vlib/runtime/runtime.v b/vlib/runtime/runtime.v
index 3cb4993e7d..7079e8c2a2 100644
--- a/vlib/runtime/runtime.v
+++ b/vlib/runtime/runtime.v
@@ -22,24 +22,32 @@ pub fn nr_jobs() int {
 
 // is_32bit returns true if the current executable is running on a 32 bit system.
 pub fn is_32bit() bool {
-	$if x32 { return true }
+	$if x32 {
+		return true
+	}
 	return false
 }
 
 // is_64bit returns true if the current executable is running on a 64 bit system.
 pub fn is_64bit() bool {
-	$if x64 { return true }
+	$if x64 {
+		return true
+	}
 	return false
 }
 
 // is_little_endian returns true if the current executable is running on a little-endian system.
 pub fn is_little_endian() bool {
-	$if little_endian { return true }
+	$if little_endian {
+		return true
+	}
 	return false
 }
 
 // is_big_endian returns true if the current executable is running on a big-endian system.
 pub fn is_big_endian() bool {
-	$if big_endian { return true }
+	$if big_endian {
+		return true
+	}
 	return false
 }
diff --git a/vlib/runtime/runtime_test.v b/vlib/runtime/runtime_test.v
index 766cba770e..d1808905c0 100644
--- a/vlib/runtime/runtime_test.v
+++ b/vlib/runtime/runtime_test.v
@@ -10,30 +10,30 @@ fn test_nr_jobs() {
 	assert nr_jobs > 0
 }
 
-fn test_is_32bit(){
+fn test_is_32bit() {
 	x := runtime.is_32bit().str()
 	assert x == 'true' || x == 'false'
 }
 
-fn test_is_64bit(){
+fn test_is_64bit() {
 	x := runtime.is_64bit().str()
 	assert x == 'true' || x == 'false'
 }
 
-fn test_is_little_endian(){
+fn test_is_little_endian() {
 	x := runtime.is_little_endian().str()
 	assert x == 'true' || x == 'false'
 }
 
-fn test_is_big_endian(){
+fn test_is_big_endian() {
 	x := runtime.is_big_endian().str()
 	assert x == 'true' || x == 'false'
 }
 
-fn test_is_big_endian_different_than_is_little_endian(){
+fn test_is_big_endian_different_than_is_little_endian() {
 	assert runtime.is_big_endian() != runtime.is_little_endian()
 }
 
-fn test_is_32bit_different_than_is_64bit(){	
+fn test_is_32bit_different_than_is_64bit() {
 	assert runtime.is_32bit() != runtime.is_64bit()
 }
diff --git a/vlib/runtime/runtime_windows.c.v b/vlib/runtime/runtime_windows.c.v
index 52098201eb..de5b2ce5e3 100644
--- a/vlib/runtime/runtime_windows.c.v
+++ b/vlib/runtime/runtime_windows.c.v
@@ -4,8 +4,9 @@ import os
 
 [typedef]
 struct C.SYSTEM_INFO {
-    dwNumberOfProcessors u32
+	dwNumberOfProcessors u32
 }
+
 fn C.GetSystemInfo(&C.SYSTEM_INFO)
 
 // nr_cpus returns the number of virtual CPU cores found on the system.
diff --git a/vlib/v/util/util.v b/vlib/v/util/util.v
index 897bb6d2b7..a33bae70d9 100644
--- a/vlib/v/util/util.v
+++ b/vlib/v/util/util.v
@@ -556,3 +556,25 @@ pub fn should_bundle_module(mod string) bool {
 	return mod in util.bundle_modules
 		|| (mod.contains('.') && mod.all_before('.') in util.bundle_modules)
 }
+
+// find_all_v_files - given a list of files/folders, finds all .v/.vsh files
+// if some of the files/folders on the list does not exist, or a file is not
+// a .v or .vsh file, returns an error instead.
+pub fn find_all_v_files(roots []string) ?[]string {
+	mut files := []string{}
+	for file in roots {
+		if os.is_dir(file) {
+			files << os.walk_ext(file, '.v')
+			files << os.walk_ext(file, '.vsh')
+			continue
+		}
+		if !file.ends_with('.v') && !file.ends_with('.vv') && !file.ends_with('.vsh') {
+			return error('v fmt can only be used on .v files.\nOffending file: "$file"')
+		}
+		if !os.exists(file) {
+			return error('"$file" does not exist')
+		}
+		files << file
+	}
+	return files
+}