Split up more of core.py and add tests for JSON parsing
Add more tests for core methods