Refactored to simple read eval mechanism