OrderSpecification removed from constructor for better flexibility;
validation logic is not bound to field, alls specs are now parameters.