Refactored all components - reduce number of lines due to util functions