DW: Added filename and extenstion

closes #6 
Could `filename` have been optional, to allow users of existing api to use as is rather than force them to change their code? In a sense it breaks backward compatibility, should we care about that?