adding FileDevice low level file handling