Changed abstract-class.js to have a hasOne and a hasMany. Using apply to call their shared logic.