move capture validation logic to method