Initial version with configurable options - untested