operations refactored to own package