separated runtime from compiler