Modifying components to support decimal values.

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