readd map shader logic in terms of .shader