Refactored and added more components