Implemented a more clear prototyping OOP model