feat: map as a component