Cleaned up variation interface