add error handling and namespace