initial commit
v 1.0 rebased