-- added addition comments
-- refactored several components