added compiler, needs to be completely modified though