Refactor of the options parser. Should handle all now