added prototypes and super classes