* Refactored a bit