complete fluent api
add minimal file read and write