Way to much added to explain. Very bad style making big commits. Sorry.