Bail on failed assert
Use data types that are more relevant in stead of plain arrays
Add documentation to the frontpage.