step10 refactors with service