Partialy Refactored!