much needed components for the previous commit