compile

experimental compile() functions
compile rework