First commit: input parser