built FileInfo in applicative functor - saved a lot of lines of code
merge applicitive experiment