add meta programming shell