Did bit of filter restructuring and added new files to make the engine component based.

The test_main file has issues (and is currently excluded from the
build).