There should be `require` statements, that does not allow with swap with low gas, tests, that checks the correctness and so on