Update

Adds additional code and prepares for features to be added later, as
well as cleaning things up in general.