more clear code
in progress