using pipeline
refactoring and learning