Refactored a bit more and again