first commit on functional datastructures