Refactor to allow $.paser() to do everything