all: split into folders, seperate signal handler