Added more error handling
Add parameter count checking