first commit without java-oriented data structures