final version - whithout comments and cliean environment