refactoring droping some c89 compatibility ect...