rearranged some more behavior to the correct classes