move everything into a proper module
merge todo