Add Settings component, fixes #24