Add features

Rough sketch of features, needs more work.