Proper Implementation 2/2 (still lacks any checks)