The source code should be as small as possible
The end-user API should be as simple as possible
The package should work in as many platforms as possible