Greatly improve error-handling, better output, indentation, syntax