Demote factspace to component and allow custom directory