Added all self type error checks, added main method error checks, added method multiply defined error check