adding interface components

separate components for reuse