Splitted up for type fixing
Shortened by including functionality in function
ignore .o files please