Refactored to use prototype/new instead of object create to make code a little easier to read