Moved parts for better debugability :D