Everything works, TODO: Add JSON, and refactor to consistency