refactored to include edn readers