revert changes and modify to accept Variation objects