initial commit
some improvements