simplified and started on parser