Specification pattern implemented in swift