first commit
more implementation and prof tests