Add components configuration option

As a part of this PR tests and shell bindings were greatly improved and fixed.

Ref #969