Modifying components to support decimal values.

This fixes #2. It also, coincidentally, fixes #1. But don't ask me why.