rewritten previous commit, included all files