added missig file from last update and some refactor done