Return errors instead of panicing
Add package description