How to protect algorithms as intellectual property