Add factory pattern
Ensure underscoreJS