updated with array handlers