refactorization part I :)
GNU-Linux-compliant
TODO comments