Adds naiv shape logic and better errors.