Add type checks
Add DRY reference