how can software be protected as intellectual property