fs2 refactoring