Added HasOneField

- refactored HasMany to reuse code in the HasOneField