added read me
some refactoring