refactoring + added livecompiler