refactored + added messages