refactor operations.hpp into multiple files