cleaned up parameter handling