[#21] implemented strategy pattern...