code cleaned only