This a pattern to be used to allow for object inheritance and interface implementation in javascript