Moved user config code into a new package and cleaned up interface