use filename String instead of File object for preparing #70.
add new feature #70. but it has not been tested yet...
fixed some problems.