Switched to a more prototypal approach...