lets use function pointers
split into multiple files
tweaks 2014
vene colors and improved logic