refactored operations and create select operation