refactoring och lagt till kommentarer + lite felhantering