seperated basic and scalar types to seperate parse function