added rainbow gradient
removed the concept of a 'Frame' and replaced it with PIL