introduce layout's variable handling
auto mkdir when compiling