4_6 refactored and finished