Add features and limitations to the project. Also update the types to be stricter.
Make code more cleaner when parsing.