TODO Github actions. Revisit the APIs to see if you return nil in case the user made a huge mistake like oob access.