Modified API a lot. Almost done.
Don't expose raw arrays