minor revisions: Strategy Pattern